package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func sayHello(c *gin.Context)  {
	c.JSON(200, gin.H{
		"数据": "this is data",
	})
}


func main() {
	r := gin.Default()
	r.GET("/book", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "GET",
		})
	})

	r.POST("/book", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "POST",
		})
	})

	r.PUT("/book", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "PUT",
		})
	})

	r.DELETE("/book", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "DELETE",
		})
	})

	r.GET("/moreJSON", func(c *gin.Context) {
		// 方法二：使用结构体
		var msg struct {
			Name    string `json:"user"`
			Message string
			Age     int
		}
		msg.Name = "小王子"
		msg.Message = "Hello world!"
		msg.Age = 18
		c.JSON(http.StatusOK, msg)
	})

	r.GET("/user/search", func(c *gin.Context) {
		username := c.DefaultQuery("username", "小公主")
		//username := c.Query("username")
		address := c.Query("address")
		//输出json结果给调用方
		c.JSON(http.StatusOK, gin.H{
			"message":  "ok",
			"username": username,
			"address":  address,
		})
	})

	r.POST("/user/search", func(c *gin.Context) {
		// DefaultPostForm取不到值时会返回指定的默认值
		//username := c.DefaultPostForm("username", "小王子")
		username := c.PostForm("username")
		address := c.PostForm("address")
		//输出json结果给调用方
		c.JSON(http.StatusOK, gin.H{
			"message":  "ok",
			"username": username,
			"address":  address,
		})
	})
	r.Run(":9000")
}

//func main() {
//	router := gin.Default()
//	router.LoadHTMLGlob("templates/**/*")
//	//router.LoadHTMLFiles("templates/template1.html", "templates/template2.html")
//	router.GET("/index", func(c *gin.Context) {
//		c.HTML(http.StatusOK, "posts/index.tmpl", gin.H{
//			"title": "Main website",
//		})
//	})
//
//	router.GET("/home", func(c *gin.Context) {
//		c.HTML(http.StatusOK, "users/index.tmpl", gin.H{
//			"title": "Home website",
//		})
//	})
//	router.Run(":8080")
//}


//func main() {
//	router := gin.Default()
//
//	router.GET("/index", sayHello)
//	router.Run(":9000")
//}
